﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SIGEB.Modelo.moduloPerfiles
{
    public class perfil
    {
        #region "constructores"

        public perfil(String idPerfil, String permisos,tipoPerfil tipoPerfil)
        {
            this.codPerfil = idPerfil;
            this.tipoPerfilP = tipoPerfil;
            this.permisos = permisos;
        }

        #endregion

        #region "metodos"

        public bool puede(int accion)
        {
            if (accion <= 0 && accion <= acciones.MAXIMO)
            {
                if (permisos[accion] == '1')
                {   
                    return true;
                }
                else if (permisos[accion] == '0')
                {
                    return false;
                }
                else
                {
                    throw new Exception("Error en los permisos");
                }
            }
            throw new Exception("numero de acción incorrecta");
        }

        public bool permisosCorrectos()
        {
            if (tipoPerfilP == null)
            {
                throw new Exception("no se han asigando permisos para este perfil");
            }
            return tipoPerfilP.permisoCorrectos(permisos);
        }

        public bool PerfValido()
        {
            return permisos.Length == acciones.MAXIMO;
        }

        #endregion

        #region "atributos"

        String _codPerfil;
        tipoPerfil _tipoPerfilP;
        String _permisos;

        public String codPerfil
        {
            set { _codPerfil = value; }
            get { return _codPerfil; }
        }

        public String permisos
        {
            set { _permisos = value; }
            get { return _permisos; }
        }

        public tipoPerfil tipoPerfilP
        {
            set { _tipoPerfilP = value; }
            get { return _tipoPerfilP; }
        }

        #endregion
    }
}
